package com.jt.web.comtroller;

import com.fasterxml.jackson.databind.util.JSONPObject;
import com.jt.pojo.ItemDesc;
import com.jt.util.ObjectMapperUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

/**
 * @author 张琪
 * @date 2020/12/11
 * @describe 使用JSONP 格式 来实现 跨域访问
 */
@RestController
@RequestMapping("/web")
public class JSONPController {

    //    @GetMapping("/testJSONP")
    public String jsonp(String callback) {
        ItemDesc itemDesc = new ItemDesc();
        itemDesc.setItemId(101l).setItemDesc("跨域访问").setCreated(new Date()).setUpdated(new Date());
        String json = ObjectMapperUtil.toJson(itemDesc);
        return callback + "(" + json + ")";
    }

    /* JSON 高级API , 可以直接按照 正常的方式直接传入json, 而不用像普通方法一样, 拼接字符串*/
    @GetMapping("/testJSONP")
    public JSONPObject jsonp1(String callback) {
        ItemDesc itemDesc = new ItemDesc();
        itemDesc.setItemId(101l).setItemDesc("跨域访问").setCreated(new Date()).setUpdated(new Date());
        String json = ObjectMapperUtil.toJson(itemDesc);
        System.out.println(json);
//        这里我们使用 JSONPObject的方法来完成 json数据的传输
        return new JSONPObject(callback, json);
    }

}
